import java.util.LinkedList;
import java.util.Queue;

/**
 * @Description: 填充每个节点的下一个右侧节点指针 II
 * 填充它的每个 next 指针，让这个指针指向其下一个右侧节点。
 * 如果找不到下一个右侧节点，则将 next 指针设置为 NULL。
 * 初始状态下，所有 next 指针都被设置为 NULL。
 * @Date:Create in 10:59  2022/7/20
 */
public class connect0117 {
    //BFS 层序遍历
    public static Node connect(Node root) {
        if(root==null) return root;
        Queue<Node> que = new LinkedList<>();
        que.offer(root);
        while(!que.isEmpty()){
            int len = que.size();
            for(int i=0;i<len;i++){
                Node node = que.poll();
                if(i<len-1) node.next = que.peek();
                if(node.left!=null) que.offer(node.left);
                if(node.right!=null) que.offer(node.right);
            }
        }
        return root;
    }
}

